<!--
    Author : Alvin Andhika
-->

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

include 'page/abstractPage.php';

//1. Nama kelas samakan dengan nama file - WAJIB extend AbstractPage
class ServerMelihatJadwalPenggunaLain extends AbstractPage {

    private $action=''; //keterangan aksi dari button submit submit (isi sendiri dengan string)
    private $message='';//keterangan pesan berhasil atau sukses
    private $page='';
    private $userID='';
    private $dataUserID = array();
    private $dataUsername = array();
    private $tabelKegiatanRutin='';
    private $tabelKegiatanNonRutin='';

    public function ServerMelihatJadwalPenggunaLain()
    {
        parent::__construct();
        $this->load->model('Kegiatan');
        
        //membuat template tabel
        $tmpl = array (
            'table_open'          => '<table border="1" cellpadding="4" cellspacing="0" class="table1">',

            'heading_row_start'   => '<tr>',
            'heading_row_end'     => '</tr>',
            'heading_cell_start'  => '<th>',
            'heading_cell_end'    => '</th>',

            'row_start'           => '<tr>',
            'row_end'             => '</tr>',
            'cell_start'          => '<td>',
            'cell_end'            => '</td>',

            'row_alt_start'       => '<tr>',
            'row_alt_end'         => '</tr>',
            'cell_alt_start'      => '<td>',
            'cell_alt_end'        => '</td>',

            'table_close'         => '</table>'
        );

        $this->table->set_template($tmpl);
    }

    public function indexJadwalKegiatan(){
        $this->action = "form";
        $this->page = "form";

        $this->load->model('Pengguna','pengguna');

        $hasil=$this->pengguna->getAllPengguna();

        foreach ($hasil as $row)
        {
            array_push($this->dataUserID, $row->userID);
            array_push($this->dataUsername, $row->name);
        }

        $this->index();
    }

    public function cekInput($tanggalMulai,$tanggalSelesai,$jamMulai,$jamSelesai){
        $errorTanggal = FALSE;
        $errorJam = FALSE;

        $this->message = '';

        if(preg_match("/\d{2}-\d{2}-\d{4}/", $tanggalMulai) && preg_match("/\d{2}-\d{2}-\d{4}/", $tanggalSelesai)){
            $arrayTanggalMulai = explode("-", $tanggalMulai);
            $arrayTanggalSelesai = explode("-", $tanggalSelesai);

            if($arrayTanggalSelesai[2] < $arrayTanggalMulai[2]){
                $errorTanggal = TRUE;
                $this->message = $this->message . "Masukan Tanggal tidak valid\n";
            }
            else if($arrayTanggalSelesai[2] == $arrayTanggalMulai[2]){
                if($arrayTanggalSelesai[1] < $arrayTanggalMulai[1]){
                    $errorTanggal = TRUE;
                    $this->message = $this->message . "Masukan Tanggal tidak valid\n";
                }
                else if($arrayTanggalSelesai[1] == $arrayTanggalMulai[1]){
                    if($arrayTanggalSelesai[0] < $arrayTanggalMulai[0]){
                        $errorTanggal = TRUE;
                        $this->message = $this->message . "Masukan Tanggal tidak valid\n";
                    }
                    else if($arrayTanggalSelesai[0] == $arrayTanggalMulai[0]){
                        $errorTanggal = FALSE;
                    }
                    else {
                        $errorTanggal = FALSE;
                    }
                }
                else {
                    $errorTanggal = FALSE;
                }
            }
            else {
                $errorTanggal = FALSE;
            }
        }
        else {
            $errorTanggal = TRUE;
            $this->message = $this->message . "Format Tanggal tidak valid\n";
        }

        if(preg_match("/\d{2}:\d{2}/", $jamMulai) && preg_match("/\d{2}:\d{2}/", $jamSelesai)){
            $arrayJamMulai = explode(":", $jamMulai);
            $arrayJamSelesai = explode(":", $jamSelesai);

            if($arrayJamSelesai[0] < $arrayJamMulai[0]){
                $errorJam = TRUE;
                $this->message = $this->message . "Masukan Jam tidak valid\n";
            }
            else if($arrayJamSelesai[0] == $arrayJamMulai[0]){
                if($arrayJamSelesai[1] < $arrayJamMulai[1]){
                    $errorJam = TRUE;
                    $this->message = $this->message . "Masukan Jam tidak valid\n";
                }
                else if($arrayJamSelesai[1] == $arrayJamMulai[1]){
                    $errorJam = TRUE;
                    $this->message = $this->message . "Masukan Jam tidak valid\n";
                }
                else {
                    $errorJam = FALSE;
                }
            }
            else {
                $errorJam = FALSE;
            }
        }
        else {
            $errorJam = TRUE;
            $this->message = $this->message . "Format Jam tidak valid\n";
        }

        if($errorTanggal || $errorJam){
            return FALSE;
        }
        else {
            return TRUE;
        }
    }

    public function getJadwalKegiatan()
    {
        if($this->cekInput($_POST['tanggalMulai'], $_POST['tanggalSelesai'], $_POST['jamMulai'],$_POST['jamSelesai'])) {
            $this->action="jadwal";
            $this->page="jadwal";

            $this->load->model('Kegiatan','kegiatan');
            $this->load->model('KegiatanNonRutin','kegiatannonrutin');

            $arrayTanggalMulai = explode("-", $_POST['tanggalMulai']);
            $arrayTanggalSelesai = explode("-", $_POST['tanggalSelesai']);

            $tanggalMulai = $arrayTanggalMulai[2] . "-" . $arrayTanggalMulai[1] . "-" . $arrayTanggalMulai[0];
            $tanggalSelesai = $arrayTanggalSelesai[2] . "-" . $arrayTanggalSelesai[1] . "-" . $arrayTanggalSelesai[0];

            $hasilRutin=$this->kegiatan->getJadwal($_POST['userID'],$_POST['hari'],$tanggalMulai,$tanggalSelesai,$_POST['jamMulai'],$_POST['jamSelesai']);

            $tanggalJamMulai = $arrayTanggalMulai[2] . "-" . $arrayTanggalMulai[1] . "-" . $arrayTanggalMulai[0] . " " . $_POST['jamMulai'] . ":00";
            $tanggalJamSelesai = $arrayTanggalSelesai[2] . "-" . $arrayTanggalSelesai[1] . "-" . $arrayTanggalSelesai[0] . " " . $_POST['jamSelesai'] . ":00";

            $hasilNonRutin=$this->kegiatannonrutin->getJadwal($_POST['userID'],$tanggalJamMulai,$tanggalJamSelesai);

            $this->table->set_heading('Nama Kegiatan', 'Ruangan', 'Hari', 'Tanggal Mulai', 'Tanggal Selesai', 'Jam Mulai', 'Jam Selesai');

            foreach ($hasilRutin as $row)
            {
                $this->table->add_row($row->activityName, $row->roomID, $row->day, $row->startDate, $row->endDate, $row->startTime, $row->endTime);
            }

            $this->tabelKegiatanRutin=$this->table->generate();

            /*
            $this->table->clear();

            $this->table->set_heading('Nama Kegiatan', 'Ruangan', 'Tanggal-Jam Mulai', 'Tanggal-Jam Selesai');

            foreach ($hasilNonRutin as $row)
            {
                $this->table->add_row($row->activityName, $row->roomID, $row->startDate, $row->endDate);
            }

            $this->tabelKegiatanNonRutin=$this->table->generate();
            */
            
            $this->load->model('Pengguna','pengguna');

            $user = $this->pengguna->getDataPengguna($_POST['userID']);

            $this->userID = $user->name;
        }
        else {
            $this->action="form";
            $this->page="form";

            $this->load->model('Pengguna','pengguna');

            $hasil=$this->pengguna->getAllPengguna();

            foreach ($hasil as $row)
            {
                array_push($this->dataUserID, $row->userID);
                array_push($this->dataUsername, $row->name);
            }
        }

        $this->index();
    }

    function _buildContent()
    {
        if ($this->action=="form")
        {
            $data = array (
                'dataUserID' => $this->dataUserID,
                'dataUsername' => $this->dataUsername,
                'page' => $this->page,
                'message' => $this->message
            );
            $this->load->view('MelihatJadwal/MelihatJadwalPenggunaLain',$data);
        }
        else if ($this->action=="jadwal")
        {

            $data = array (
                'tabelKegiatanRutin' => $this->tabelKegiatanRutin,
                //'tabelKegiatanNonRutin' => $this->tabelKegiatanNonRutin,
                'username' => $this->userID,
                'page' => $this->page,
                'message' => $this->message
            );
            $this->load->view('MelihatJadwal/MelihatJadwalPenggunaLain',$data);
        }
    }
}

